package com.java.base.exercise.jvm;

/**
 * @Author RenPu
 * @Date 2021/10/11 15:18
 * @Version 1.0
 * @Description: 在jdk 1.6中此案例，俩个返回的都是false,
 * 原因： intern()方法会把首次，遇到的字符串复制到永久代，
 * 返回的也是永久代实例的引用，而StringBuilder是在heap上创建的，必然不是一个引用
 * 在jdk 1.7中此案例，第一个为ture, 第二个为false
 * 原因： intern()方法不会复制，只是在常量池中记录首次出现的引用
 **/
public class RuntimeConstantPoolOOMT {

    public static void main(String[] args) {
        String str = new StringBuilder("计算机").append("软件").toString();
        System.out.println(str.intern() == str);
        String str2 = new StringBuilder("ja").append("va").toString();
        System.out.println(str2.intern() == str2);

    }


}
